#ifndef STATIC_ENTITY_H_
#define STATIC_ENTITY_H_

#include <stdio.h>
#include <wchar.h>
#include <irrlicht.h>
#include <iostream>

#include "AnimatedEntity.h"
#include "World.h"

class ItemGenerator;

/*! The StaticEntity class provides a specialized entity which just does nothing; derivated from AnimatedEntity, it can be animated. It also supports to be created by a generator (class ItemGenerator) which can have a fixed number of children. */
class StaticEntity : public virtual AnimatedEntity
{
	protected:
	ItemGenerator* parent__;	/**< If created by a generator, points to the generator which created the entity. */

	public:
	/*! Constructor. Just initialize the AnimatedEntity super-class, set the node ID to 512 and parent__ to 0. */
	StaticEntity(const irr::core::string<c8>& entityModel, const irr::core::string<c8>& entitySkin, const irr::core::string<c8>& weaponModel="", const irr::core::string<c8>& weaponSkin="");
	/*! Destructor. if parent__ is not 0, then ask the parent to remove this from it's children list. */
	virtual ~StaticEntity();

	/*! Used by ItemGenerator; set the parent to the argument 'it'. */
	virtual void setParent(ItemGenerator* it);
	/*! Just does nothing. */
        virtual void update();
};

#endif

